package QianFeng06.StringDemo;

import java.util.Arrays;

/**String类方法
 *
 * 字符与字符串操作方法：
 * No  方法名称                                          类型         描述
 * 1  public char charAt (int index)                    普通     根据下标找到指定的字符
 * 2  public char[] toCharArray()                       普通     以字符数组的形式返回全部的字符串内容
 * 3  public String(char[] value)                       构造     将全部的字符数组变为字符串
 * 4  public String(char[] value,int offset,int count)  构造     将指定范围的字符数组变为字符串
 *
 * 字节与字符串操作方法：
 * No  方法名称                                         类型        描述
 * 1  public byte[] getBytes()                          普通   将字符串变为字节数组
 * 2  public String(byte[] bytes)                       构造   将字节数组变为字符串
 * 3  public String(byte[] bytes,int offset,int length) 构造   将指定范围的字节数组变为字符串
 * 4  public String[byte[] bytes,String charsetName)    构造   通过使用指定的charset解码指定的byte数组，构造一个新的String
 *
 * String类判断是否以指点内容开头或结尾：
 * No  方法名称                                            类型        描述
 * 1  public boolean startsWith(String prefix)             普通   从第一个位置开始判断是否以指定的内容开头
 * 2  public boolean startsWith(String prefix,int offset)  普通   从指定的位置开始判断是否以指定的内容开头
 * 3  public boolean endsWith(String suffix)               普通   判断是否以指定的内容结尾
 *
 * String类替换操作：
 * No  方法名称                                                              类型        描述
 * 1  public String replace(char aldChar,char newChar)                      普通   替换指定字符
 * 2  public String replace(CharSequence target, CharSequence replacement)  普通   替换指定字符串
 * 3  public String replaceAll(String regex,String replacement)             普通   替换指定的字符串
 * 4  public String replaceFirst(String regex,String replacement)           普通   替换第一个满足条件的字符串
 *
 * String类字符串截取操作：
 * No  方法名称                                            类型        描述
 * 1 public String substring(int beginIndex)               普通   从指定位置开始一直截取到末尾
 * 2 public String substring(int beginIndex,int endIndex)  普通   截取指定范围的字符串
 *
 * String类字符串拆分操作：
 * No  方法名称                                       类型        描述
 * 1 public String split(String regex)               普通    安装指定的字符串拆分
 * 2 public String[] split(String regex,int limit)   普通    拆分字符串，并指定拆分的个数
 *
 * String类字符串查找操作：
 * No  方法名称                                         类型        描述
 * 1  public boolean contains(String s)                普通   返回一个字符串是否存在
 * 2  public int indexOf(int ch)                       普通   从头查找指定的字符是否存在，char > int,如果存在则返回位置，如果不存在则返回“-1”。
 * 3  public int indexOf(int ch,Int fromIndex)         普通   从指定位置查找指定的字符是否存在，char > int,如果存在则返回位置，如果不存在则返回“-1”
 * 4  public int indexOf(String str)                   普通   从头查找指定的字符串是否存在，如果存在则返回位置，如果不存在则返回“-1”
 * 5  public int indexOf(String str,int fromIndex)     普通   从指定位置查找字符事是否存在，如果存在则返回位置，如果不存在则近回“-1”
 *
 * String其他操作方法：
 * No  方法名称                             类型        描述
 * 1  public boolean isEmpty()             普通   判断是否为空，指的是内容为空
 * 2  public int length()                  普通   取得字符串的长度
 * 3  public String toLowerCase()          普通   转小写
 * 4  public String toUpperCase()          普通   转大写
 * 5  public String trim()                 普通   去掉开头和结尾的空格，中间的空格不去
 * 6  public String concat(String str)     普通   字符串连接操作
 *
 **/
public class StringDemo2 {
    public static void main(String[] args) {
        String str = "fast1245";
        /*----------字符与字符串操作方法----------*/
        System.out.println("----------字符与字符串操作方法----------");
        //方法一 charAt(int index) 根据下标找到指定的字符
        char c = str.charAt(1);
        System.out.println(c);
        //方法二 toCharArray()  以字符数组的形式返回全部的字符串内容
        System.out.println(str.toCharArray());
        //方法三 String(char[] value)  将全部的字符数组变为字符串
        char[] chars = {'a', 'b', 'c'};
        String s1 = new String(chars);
        System.out.println(s1);
        //方法四 String(char[] value,int offset,int count)  将指定范围的字符数组变为字符串
        String s2 = new String(chars, 0, 1);
        System.out.println(s2);

        /*----------字节与字符串操作方法----------*/
        System.out.println("----------字节与字符串操作方法----------");
        //方法一 getBytes()  将字符串变为字节数组
        System.out.println(Arrays.toString(str.getBytes()));

        /*----------String类替换操作----------*/
        System.out.println("----------String类替换操作----------");
        //方法一  replace(char aldChar,char newChar)  替换指定字符
        System.out.println(str.replace('f', '*'));//*ast1245
        //方法二  replace(CharSequence target, CharSequence replacement)  替换指定字符串
        System.out.println(str.replace("as", "irs"));//first1245
        //方法三  replaceAll(String regex,String replacement)  替换指定的字符串
        System.out.println(str.replaceAll("[0-3]","*"));//fast**45
        //方法四  replaceFirst(String regex,String replacement) 替换第一个满足条件的字符串
        System.out.println(str.replaceFirst("[0-9]", "*"));//fast*245

        /*----------String类字符串截取操作----------*/
        System.out.println("String类字符串截取操作");
        //方法一  substring(int beginIndex)  从指定位置开始一直截取到末尾
        System.out.println(str.substring(4));
        //方法二  substring(int beginIndex,int endIndex)  截取指定范围的字符串
        System.out.println(str.substring(1,3));

        /*----------String类字符串拆分操作----------*/
        System.out.println("String类字符串拆分操作");
        //方法一  split(String regex)  安装指定的字符串拆分
        System.out.println(Arrays.toString(str.split("t")));//[fas, 1245]
        //方法二  split(String regex,int limit)  拆分字符串，并指定拆分的个数
        System.out.println(Arrays.toString(str.split("t", 2)));

        /*----------String类字符串查找操作----------*/
        System.out.println("----------String类字符串查找操作----------");
        //方法一  contains(String s)  返回一个字符串是否存在
        System.out.println(str.contains("s"));
        //方法二  indexOf(int ch)  从头查找指定的字符是否存在，char > int,如果存在则返回位置，如果不存在则返回“-1”。
        System.out.println(str.indexOf("i"));
        //方法三  indexOf(int ch,Int fromIndex)  从指定位置查找指定的字符是否存在，char > int,如果存在则返回位置，如果不存在则返回“-1”
        System.out.println(str.indexOf("s",2));
        //方法四  indexOf(String str)  从头查找指定的字符串是否存在，如果存在则返回位置，如果不存在则返回“-1”
        System.out.println(str.indexOf("fa"));
        //方法五  indexOf(String str,int fromIndex)  从指定位置查找字符事是否存在，如果存在则返回位置，如果不存在则近回“-1”
        System.out.println(str.indexOf("st",2));

        /*----------String其他操作方法----------*/
        System.out.println("----------String其他操作方法----------");
        //方法一  boolean isEmpty()  判断是否为空，指的是内容为空
        System.out.println(str.isEmpty());
        //方法二  length()  取得字符串的长度
        System.out.println(str.length());
        //方法三  toLowerCase()  转小写
        System.out.println(str.toLowerCase());
        //方法四  toUpperCase  转大写
        System.out.println(str.toUpperCase());
        //方法五  trim()  去掉开头和结尾的空格，中间的空格不去
        System.out.println(str.trim());
        //方法六  concat(String str)  字符串连接操作
        System.out.println(str.concat("***"));
        //方法七 ValueOf(String str) 将类型转换成字符串类型
        System.out.println(String.valueOf(10));
    }
}
